NGINX,發(fā)音為“engine-ex”,于 2004 年 10 月正式發(fā)布。該軟件的創(chuàng)建者 Igor Sysoev 在 2002 年開始了他的項目,試圖解決 C10k問題。C10k是同時管理一萬個連接的挑戰(zhàn)。
今天,Web 服務器必須處理更多的連接。出于這個原因,NGINX 提供了一個事件驅動的異步架構。此功能使 NGINX 成為速度和可擴展性最可靠的服務器之一。
由于其超強的處理大量連接的能力和速度,許多高流量網(wǎng)站一直在使用 NGINX 的服務。其中一些在線巨頭包括 Google、Netflix、Adobe、Cloudflare、WordPress.com 等等。
什么是 NGINX?
NGINX 是一種開源 Web 服務器軟件,可用作IMAP、POP3 和 SMTP 的反向代理、HTTP 負載平衡器和電子郵件代理。
NGINX 是如何工作的?
在進一步了解 NGINX 之前,讓我們先了解一下 Web 服務器的工作原理。當有人請求打開網(wǎng)頁時,瀏覽器會聯(lián)系該網(wǎng)站的網(wǎng)絡服務器。然后,Web 服務器為頁面查找請求的文件并將其發(fā)送到瀏覽器。這只是最簡單的一種請求。
上面的示例也被視為單線程。傳統(tǒng)的 Web 服務器為每個請求創(chuàng)建一個線程,但 NGINX 不是這樣工作的。如前所述,NGINX 以異步、事件驅動的架構運行。這意味著類似的線程在一個工作進程下管理,每個工作進程包含更小的單元,稱為工作連接。然后整個單元負責處理并發(fā)請求。工作連接將請求傳遞給工作進程,該工作進程也會將請求發(fā)送給主進程。最后,主進程提供這些請求的結果。
這聽起來很簡單,但一個工作連接可以處理多達 1024 個類似的請求。正因為如此,NGINX 可以毫無困難地處理數(shù)千個請求。這也是 NGINX 成為最快的 Web 服務器的原因,它非常適合電子商務、搜索引擎和云存儲等高流量網(wǎng)站。
NGINX 與阿帕奇
Apache 是另一種流行的網(wǎng)絡服務器,也是 NGINX 的主要競爭對手之一。它自 90 年代以來一直存在,并且擁有龐大的用戶社區(qū)。如果您對哪種 Web 服務器最適合您的需求感到好奇,請查看 NGINX 和 Apache 之間的簡短且信息豐富的比較。
- 操作系統(tǒng)支持
兼容性是您在選擇軟件時應該考慮的小細節(jié)之一。NGINX 和 Apache 都可以運行在許多支持 Unix 系統(tǒng)的操作系統(tǒng)上。不幸的是,NGINX 在 Windows 上的性能不如在其他平臺上好。 - 用戶支持
用戶,從新手到專業(yè)人士,總是需要一個好的社區(qū)來幫助他們解決問題。雖然 NGINX 和 Apache 都有郵件支持和 Stack Overflow 論壇,但 Apache 缺乏其公司 Apache Foundation 的支持。 - 性能
NGINX 可以同時運行 1000 個靜態(tài)內容連接,速度是 Apache 的兩倍,并且使用的內存更少。然而,當比較它們在運行動態(tài)內容時的性能時,兩者具有相同的速度。對于那些擁有更多靜態(tài)網(wǎng)站的人來說,NGINX 是更好的選擇。
結論
NGINX 是一種流行的開源 Web 服務器,它還充當電子郵件代理、反向代理和負載平衡器。該軟件的結構是異步和事件驅動的;這樣可以同時處理許多請求。NGINX 也具有高度可擴展性,這意味著它的服務隨著客戶流量的增長而增長。NGINX 和 Apache 確實是市場上最受歡迎的兩種 Web 服務器。